class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        int s_size = s.size(), p_size = p.size(), cnt = p_size;
        if(p_size > s_size) return {};
        vector<int> hash(300), ans;
        for(auto& e : p) hash[e]++;
        for(int i = 0; i < s_size; ++i)
        {
            if(i >= p_size && ++hash[s[i - p_size]] > 0) cnt++;
            if(--hash[s[i]] >= 0 && --cnt == 0) ans.push_back(i - p_size + 1);
        }
        return ans;
    }
};